package com.example.leetcode.prcatice;

import java.util.HashSet;
import java.util.Set;

/** 给你两个单链表的头节点 headA 和 headB ，请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点，返回 null 。 */
public class Test160 {
  public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
    Set<ListNode> set = new HashSet<ListNode>();
    ListNode t = headA;
    while (t != null) {
      set.add(t);
      t = t.next;
    }
    t = headB;
    while (t != null) {
      if (set.contains(t)) {
        return t;
      }
      t = t.next;
    }
    return null;
  }
}

class ListNode {
  int val;
  ListNode next;

  ListNode(int x) {
    val = x;
    next = null;
  }

  public ListNode() {}
}
